package com.atguigu1.core.rdd

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
 *
 * @description: 分区分配策略
 * @time: 2021-03-12 11:45
 * @author: baojinlong
 **/
object Spark04RddParallelRules {
  def main(args: Array[String]): Unit = {
    val sparkConf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("rdd")
    // 设置rdd分区数字
    val sparkContext = new SparkContext(sparkConf)
    // 默认是8个分区=当前运行环境的最大可用核数,一个分区生成一个文件
    val rddValue: RDD[Int] = sparkContext.makeRDD(List(1, 2, 3, 4, 5), 3)
    // 首先获取数组长度5
    rddValue.saveAsTextFile("output")
    // 关闭环境
    sparkContext.stop()

    /**
     * length:5 numSlice:3
     * 0 until 3 (item*length)/numSlice  ((item+1)*length)/numSlice
     * 0=> (0,1)
     * 1=> (1,3)
     * 2=> (3,5)
     * 根据数组的起始位置来获取值 1   2,3   4,5
     */
  }

}
